home *** CD-ROM | disk | FTP | other *** search
- 1 REM The number in line 240 represents the game length in seconds.
- 2 KEY OFF : CLS
- 3 PRINT "This game simulates the popular game of BOGGLE and probably infringes
- 4 PRINT "on somebody's patent, trademark, and copyright. The object is to form
- 5 PRINT "as many words within the time limit (3 minutes) as possible. Each
- 6 PRINT "3 letter word counts 1 point, 4 letter words 2 points, etc. Plurals
- 7 PRINT "are allowed but not popular names, etc. Words shorter than 3 letters
- 8 PRINT "are not permitted. Words may be formed horizontally, vertically,
- 9 PRINT "diagonally, backwards, around corners, etc. Two or more may play." : PRINT : PRINT
- 10 RANDOMIZE
- 20 DIM BOARD$(16), INDEX(16), DIE$(16,6)
- 30 FOR I = 1 TO 16
- 40 FOR J = 1 TO 6
- 50 READ DIE$(I,J)
- 60 NEXT J
- 70 NEXT I
- 80 DATA C,A,S,E,R,L
- 90 DATA M,A,Qu,O,J,B
- 100 DATA A,L,I,B,T,Y
- 110 DATA B,I,X,O,F,R
- 120 DATA A,A,O,I,T,C
- 130 DATA D,U,N,O,K,T
- 140 DATA R,L,G,W,U,I
- 150 DATA N,I,P,E,H,S
- 160 DATA M,O,R,A,H,S
- 170 DATA G,E,Y,U,K,L
- 180 DATA Y,I,E,E,H,F
- 190 DATA W,O,S,E,D,N
- 200 DATA N,V,D,Z,E,A
- 210 DATA C,A,T,E,D,M
- 220 DATA S,P,T,L,E,U
- 230 DATA T,E,V,I,G,N
- 240 GT=18
- 300 CLS : LOCATE 1,36 : PRINT "B O G G L E" : LOCATE 3,1 : PRINT "Tumbling the dice...";
- 310 FOR J = 1 TO 16
- 320 I = 1 + CINT(5*RND)
- 330 BOARD$(J) = DIE$(J,I)
- 340 NEXT
- 345 J = 1 : SUM = 0
- 350 WHILE J <= 15
- 360 I = 1 + CINT(15*RND)
- 370 FLAG = 0
- 380 FOR L = 1 TO J
- 390 IF INDEX(L) = I THEN FLAG = 1
- 400 NEXT
- 410 IF FLAG = 0 THEN INDEX(J) = I : J = J + 1 : SUM = SUM + I : PRINT ".";
- 420 WEND
- 425 PRINT "!"; : INDEX(16) = 136 - SUM
- 430 LOCATE 5,1 : PRINT "Type any key when ready to start...";
- 440 IF INKEY$ = "" THEN 440
- 445 TIME$ = "00:00:00"
- 450 GOSUB 1000
- 455 AL = 1
- 460 ST = 60*VAL(MID$(TIME$,4,2)) + VAL(RIGHT$(TIME$,2))
- 470 LOCATE 3,39 : PRINT RIGHT$(TIME$,5)
- 480 CT = 60*VAL(MID$(TIME$,4,2)) + VAL(RIGHT$(TIME$,2))
- 485 IF (CT > ST+GT-10) AND AL=1 THEN AL=0 : SOUND 200,3 : LOCATE 21,31 : PRINT "10 SECOND WARNING!";
- 490 IF CT < ST + GT THEN 470
- 500 BEEP : BEEP : CLS : LOCATE 1,36 : PRINT "B O G G L E" : LOCATE 5,1
- 510 PRINT "Time's up!!!" : PRINT
- 520 PRINT "Type any key to restore screen...";
- 530 IF INKEY$ = "" THEN 530
- 540 GOSUB 1000
- 550 LOCATE 22,1 : PRINT "Type <R> to repeat, any other key to quit...";
- 560 Q$ = INKEY$ : IF Q$ = "" THEN 560
- 570 IF Q$ = "R" OR Q$ = "r" THEN 300
- 580 CLS : KEY ON : END
- 1000 CLS : LOCATE 1,36 : PRINT "B O G G L E"
- 1005 COLOR 15
- 1010 FOR CNT = 1 TO 13 STEP 4
- 1020 LOCATE .75*CNT + 8.25,31
- 1030 PRINT USING "\\"; BOARD$(INDEX(CNT));
- 1040 LOCATE .75*CNT + 8.25,37
- 1050 PRINT USING "\\"; BOARD$(INDEX(CNT+1));
- 1060 LOCATE .75*CNT + 8.25,43
- 1070 PRINT USING "\\"; BOARD$(INDEX(CNT+2));
- 1080 LOCATE .75*CNT + 8.25,49
- 1090 PRINT USING "\\"; BOARD$(INDEX(CNT+3));
- 1100 NEXT CNT
- 1105 COLOR 7
- 1110 RETURN